package cn.fl.carloan.transform;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.carloan.vo.OdrClueInfoVO;
import fl.carloan.facade.carloan.dto.OdrClueInfoDTO;

import java.util.ArrayList;
import java.util.List;


/**
 * @Description: 预约线索表 转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据
 * @Description: VO转换数据变成DTO传递到服务端
 * @Description: VO不能在服务端出现
 */
public class OdrClueInfoVOTransform {


    /**
     * DTO 转  VO
     *
     * @param
     * @return OdrClueInfoVO
     */
    public static OdrClueInfoVO toVO(OdrClueInfoDTO dto) {
        OdrClueInfoVO vo = null;
        if (dto != null) {
            vo = new OdrClueInfoVO();
            vo.setId(dto.getId());
            vo.setClueNo(dto.getClueNo());//线索编号
            vo.setUsrId(dto.getUsrId());//用户ID
            vo.setRcdId(dto.getRcdId());//推荐人ID
            vo.setCstId(dto.getCstId());//客户ID
            vo.setCstNm(dto.getCstNm());//客户名称
            vo.setCstMgrId(dto.getCstMgrId());//客户经理ID
            vo.setCstMgrNm(dto.getCstMgrNm());//客户经理名称
            vo.setCstMgrOrgCd(dto.getCstMgrOrgCd());//客户经理组织结构
            vo.setClueStsCd(dto.getClueStsCd());//线索状态
            vo.setBuOrgCd(dto.getBuOrgCd());//所属事业部
            vo.setDateResCd(dto.getDateResCd());//数据来源
            vo.setRgnPrCd(dto.getRgnPrCd());//所属省
            vo.setRgnCyCd(dto.getRgnCyCd());//所属市
            vo.setLicDt(dto.getLicDt());//上牌时间
            vo.setInvoiceAmt(dto.getInvoiceAmt());//购车发票金额
            vo.setPrdAmt(dto.getPrdAmt());//评估价值
            vo.setContAmt(dto.getContAmt());//贷款金额
            vo.setOdrRem(dto.getOdrRem());//备注
            vo.setIsDel(dto.getIsDel());//是否删除

            vo.setCrtTm(dto.getCrtTm());//创建时间
            vo.setCrtUsrId(dto.getCrtUsrId());//创建人
            vo.setMdfTm(dto.getMdfTm());//修改时间
            vo.setMdfUsrId(dto.getMdfUsrId());//修改人
            vo.setResCd(dto.getResCd());
            vo.setBuOrgCdNm(dto.getBuOrgCdNm());  //所属事业部
            vo.setCreditRcdId(dto.getCreditRcdId());    //征信记录id
            vo.setCreditRstCd(dto.getCreditRstCd());    //征信结果
            vo.setCreditMdfTm(dto.getCreditMdfTm());    //征信结果修改时间
            vo.setUsrLoginMp(dto.getUsrLoginMp());
            vo.setCstMgrMp(dto.getCstMgrMp());
        }
        return vo;
    }

    /**
     * VO 转 DTO
     *
     * @param
     * @return OdrClueInfoDTO
     */
    public static OdrClueInfoDTO toDTO(OdrClueInfoVO vo) {
        OdrClueInfoDTO dto = null;
        if (vo != null) {
            dto = new OdrClueInfoDTO();
            dto.setId(vo.getId());
            dto.setClueNo(vo.getClueNo());//线索编号
            dto.setUsrId(vo.getUsrId());//用户ID
            dto.setRcdId(vo.getRcdId());//推荐人ID
            dto.setCstId(vo.getCstId());//客户ID
            dto.setCstNm(vo.getCstNm());//客户名称
            dto.setCstMgrId(vo.getCstMgrId());//客户经理ID
            dto.setCstMgrNm(vo.getCstMgrNm());//客户经理名称
            dto.setCstMgrOrgCd(vo.getCstMgrOrgCd());//客户经理组织结构
            dto.setClueStsCd(vo.getClueStsCd());//线索状态
            dto.setBuOrgCd(vo.getBuOrgCd());//所属事业部
            dto.setDateResCd(vo.getDateResCd());//数据来源
            dto.setRgnPrCd(vo.getRgnPrCd());//所属省
            dto.setRgnCyCd(vo.getRgnCyCd());//所属市
            dto.setLicDt(vo.getLicDt());//上牌时间
            dto.setInvoiceAmt(vo.getInvoiceAmt());//购车发票金额
            dto.setPrdAmt(vo.getPrdAmt());//评估价值
            dto.setContAmt(vo.getContAmt());//贷款金额
            dto.setOdrRem(vo.getOdrRem());//备注
            dto.setIsDel(vo.getIsDel());//是否删除
            dto.setCrtTm(vo.getCrtTm());//创建时间
            dto.setCrtUsrId(vo.getCrtUsrId());//创建人
            dto.setMdfTm(vo.getMdfTm());//修改时间
            dto.setMdfUsrId(vo.getMdfUsrId());//修改人
            dto.setCreditRcdId(vo.getCreditRcdId());
            dto.setCreditRstCd(vo.getCreditRstCd());
            dto.setCreditMdfTm(vo.getCreditMdfTm());
            dto.setResCd(vo.getResCd());
            dto.setUsrLoginMp(vo.getUsrLoginMp());
            dto.setCstMgrMp(vo.getCstMgrMp());
        }
        return dto;
    }

    /**
     * DTO集合 转 VO集合
     *
     * @param <OdrClueInfoDTO>
     * @return List<OdrClueInfoVO>
     */
    public static List<OdrClueInfoVO> toVOList(List<OdrClueInfoDTO> list) {
        List<OdrClueInfoVO> voList = new ArrayList<OdrClueInfoVO>();
        if (CollectionUtils.isNotEmpty(list)) {
            for (OdrClueInfoDTO dto : list) {
                voList.add(toVO(dto));
            }
        }
        return voList;
    }

    /**
     * VO集合 转 DTO集合
     *
     * @param list List<OdrClueInfoVO>
     * @return List<OdrClueInfoDTO>
     */
    public static List<OdrClueInfoDTO> toDTOList(List<OdrClueInfoVO> list) {
        List<OdrClueInfoDTO> dtoList = new ArrayList<OdrClueInfoDTO>();
        if (CollectionUtils.isNotEmpty(list)) {
            for (OdrClueInfoVO vo : list) {
                dtoList.add(toDTO(vo));
            }
        }
        return dtoList;
    }
}
